#ifndef PRVP_H_
#define PRVP_H_

//#define DEBUG

#define ID 0
#define DURACAO 1
#define DEMANDA 2
#define NVISITAS 3
#define NCOMB 4

bool debug = false;

int aval = 0;
int avalrap = 0;

int validos = 0;
int invalidos = 0;

#include "./PRVP/Representation.h"
#include "./PRVP/Solution.h"
#include "./PRVP/Memory.h"
#include "./PRVP/Evaluation.h"
#include "./PRVP/ProblemInstance.hpp"
#include "./PRVP/Evaluator.hpp"
#include "./PRVP/EvaluatorPRV.hpp"

//PERTURBAÇÕES
#include "./PRVP/NSShiftPeriod.hpp"
#include "./PRVP/NSShiftPeriodDistance.hpp"
#include "./PRVP/NSMultiShift11.hpp"//(nao efetiva)
#include "./PRVP/NSShift11Perturbation.hpp"

//SOLUÇÕES INICIAIS
#include "./PRVP/InitialSolutionSavings.hpp"
#include "./PRVP/InitialSolutionTest.hpp" // Solução com clientes nos periodos ótimos(instância p01)
#include "./PRVP/InitialSolutionPatternImprovement.hpp"
#include "./PRVP/InitialSolutionPatternImprovementProximity.hpp"

//MOVIMENTOS CRIADOS
#include "./PRVP/NSSeqPeriodicSwap2_1.hpp"
#include "./PRVP/NSSeqPeriodicSwap2_2.hpp"


//MOVIMENTOS avaliação 0(1)
#include "./PRVP/NSSeqVRPSwap2_1.hpp"
#include "./PRVP/NSSeqVRPSwap2_2.hpp"
#include "./PRVP/NSSeqVRPOr1Opt.hpp"
#include "./PRVP/NSSeqVRPOr2Opt.hpp"
#include "./PRVP/NSSeqVRPCross.hpp"
#include "./PRVP/NSSeqVRPShift10.hpp"
#include "./PRVP/NSSeqVRPShift20.hpp"
#include "./PRVP/NSSeqVRPSwap.hpp"
#include "./PRVP/NSSeqVRP2Opt.hpp"
#include "./PRVP/NSSeqVRPExchange.hpp"

//MODELO MATEMATICO
pthread_mutex_t cs_mutex = PTHREAD_MUTEX_INITIALIZER;
#include "./PRVP/Exact/LPool.hpp"
#include "./PRVP/Exact/SetPart.hpp"


//HEURISTICAS

#include "./PRVP/Heuristics/PatternImprovement.hpp"
#include "./PRVP/Heuristics/PatternImprovementFull.hpp"
#include "./PRVP/Heuristics/PeriodicVND.hpp"
#include "./PRVP/Heuristics/IntensifiedIteratedLocalSearchPRVP.hpp"
#include "./PRVP/Heuristics/BasicILSPerturbationExato.hpp"
#include "./PRVP/Heuristics/BasicIteratedLocalSearchPRVP.hpp"
#include "./PRVP/Heuristics/GRASP.hpp"

// MOVIMENTOS UTILIZADOS DO OPTFRAME
#include "./OptFrame/Util/NSSeqRouteShift.hpp"



#endif /*PRVP_H_*/
